Plot Data
library(ggplot2)
# raw data
ggplot(dataset, aes(x=Etoposide, y=Counts)) +
theme_bw() +
theme(panel.grid=element_blank(), text = element_text(size=14)) +
geom_smooth(method=lm, formula = y ~ poly(x,2), se=FALSE, aes(colour=siRNA)) +
geom_point(aes(colour=siRNA, shape=Experiment), size=2) +
facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)") +
scale_shape_manual(values=15:20) +
scale_color_manual(values=c("#000000","#FF0000"))

# NormCounts Linear
ggplot(dataset, aes(x=Etoposide, y=NormCounts, color=siRNA)) +
theme_bw() +
theme(panel.grid=element_blank(), text = element_text(size=14)) +
geom_point(aes(colour=siRNA), size=2) +
geom_smooth(method=lm, formula = y ~ x, se=FALSE) +
facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)") +
scale_color_manual(values=c("#000000","#FF0000"))

# NormCounts2 Linear
ggplot(dataset, aes(x=Etoposide, y=NormCounts2, color=siRNA)) +
theme_bw() +
theme(panel.grid=element_blank(), text = element_text(size=14)) +
geom_point(aes(colour=siRNA), size=2) +
geom_smooth(method=lm, formula = y ~ x, se=FALSE) +
facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)") +
scale_color_manual(values=c("#000000","#FF0000"))

# NormCounts Quadratic
ggplot(dataset, aes(x=Etoposide, y=NormCounts, color=siRNA)) +
theme_bw() +
theme(panel.grid=element_blank(), text = element_text(size=14)) +
geom_point(aes(colour=siRNA), size=2) +
geom_smooth(method=lm, formula = y ~ poly(x,2), se=FALSE) +
facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)")+
scale_color_manual(values=c("#000000","#FF0000"))

# NormCounts2 Quadratic
ggplot(dataset, aes(x=Etoposide, y=NormCounts2, color=siRNA)) +
theme_bw() +
theme(panel.grid=element_blank(), text = element_text(size=14)) +
geom_point(aes(colour=siRNA), size=2) +
geom_smooth(method=lm, formula = y ~ poly(x,2), se=FALSE) +
facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)") +
scale_color_manual(values=c("#000000","#FF0000"))

# NormCounts Cubic
ggplot(dataset, aes(x=Etoposide, y=NormCounts, color=siRNA)) +
theme_bw() +
theme(panel.grid=element_blank(), text = element_text(size=14)) +
geom_point(aes(colour=siRNA), size=2) +
geom_smooth(method=lm, formula = y ~ poly(x,3), se=FALSE) +
facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)")+
scale_color_manual(values=c("#000000","#FF0000"))

# NormCounts2 Cubic
ggplot(dataset, aes(x=Etoposide, y=NormCounts2, color=siRNA)) +
theme_bw() +
theme(panel.grid=element_blank(), text = element_text(size=14)) +
geom_point(aes(colour=siRNA), size=2) +
geom_smooth(method=lm, formula = y ~ poly(x,3), se=FALSE) +
facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)") +
scale_color_manual(values=c("#000000","#FF0000"))

library(Cairo)
cairo_pdf("FigureS3_eto.pdf", width = 5, height = 4, family = "Arial")
ggplot(dataset, aes(x=Etoposide, y=NormCounts2)) +
theme_bw() +
theme(panel.grid.major=element_blank(), panel.grid.minor=element_blank(),
axis.line = element_line(colour = "black"), text = element_text(size=14),
panel.border = element_blank(), panel.background = element_blank()) +
geom_point(aes(colour = siRNA, shape = genotype), size=1.75) +
geom_smooth(method=lm, formula = y ~ poly(x,2), se=TRUE,
aes(group = GSID,colour = siRNA, linetype = genotype), fill='#DDDDDD', size=0.5) +
#facet_grid(. ~ genotype) +
xlab(label = "Etoposide (log10 µM)") +
ylab(label = "Normalized Counts") +
scale_color_manual(values=c("#000000","#FF0000")) +
guides(linetype = guide_legend(override.aes= list(color = "#555555")))
dev.off()
## quartz_off_screen
## 2
Models
library(MASS)
library(DHARMa)
library(lme4)
library(lmerTest)
library(bbmle)
Linear formula
fit1 <- lm(Counts ~ Experiment + Etoposide*siRNA*genotype, data = dataset)
print(summary(fit1))
##
## Call:
## lm(formula = Counts ~ Experiment + Etoposide * siRNA * genotype,
## data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -612.87 -104.64 -32.67 111.77 852.19
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1959.50 151.73 12.915 1.79e-15 ***
## Experimentexp2 535.94 95.40 5.618 1.90e-06 ***
## Experimentexp3 444.00 95.40 4.654 3.89e-05 ***
## Etoposide -1342.07 152.39 -8.807 1.03e-10 ***
## siRNAsiPARP1 -717.95 199.94 -3.591 0.000931 ***
## genotypeALC1KO -600.72 199.94 -3.005 0.004690 **
## Etoposide:siRNAsiPARP1 175.48 215.51 0.814 0.420572
## Etoposide:genotypeALC1KO 94.03 215.51 0.436 0.665071
## siRNAsiPARP1:genotypeALC1KO 1171.04 282.76 4.141 0.000185 ***
## Etoposide:siRNAsiPARP1:genotypeALC1KO -514.43 304.78 -1.688 0.099627 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 269.8 on 38 degrees of freedom
## Multiple R-squared: 0.9095, Adjusted R-squared: 0.8881
## F-statistic: 42.44 on 9 and 38 DF, p-value: < 2.2e-16
cat("AIC: ", AIC(fit1))
## AIC: 684.3934
simres <- simulateResiduals(fittedModel = fit1)
plot(simres)

fit2 <- lm(NormCounts ~ Etoposide*siRNA*genotype, data = dataset)
print(summary(fit2))
##
## Call:
## lm(formula = NormCounts ~ Etoposide * siRNA * genotype, data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57621 -0.06797 0.06013 0.12987 0.36272
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.8282 0.1175 15.554 < 2e-16 ***
## Etoposide -1.0697 0.1267 -8.443 2e-10 ***
## siRNAsiPARP1 0.5529 0.1662 3.326 0.001894 **
## genotypeALC1KO 0.5516 0.1662 3.319 0.001936 **
## Etoposide:siRNAsiPARP1 -0.7142 0.1792 -3.986 0.000278 ***
## Etoposide:genotypeALC1KO -0.7125 0.1792 -3.977 0.000285 ***
## siRNAsiPARP1:genotypeALC1KO -0.5239 0.2351 -2.229 0.031515 *
## Etoposide:siRNAsiPARP1:genotypeALC1KO 0.6767 0.2534 2.671 0.010892 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2243 on 40 degrees of freedom
## Multiple R-squared: 0.944, Adjusted R-squared: 0.9341
## F-statistic: 96.24 on 7 and 40 DF, p-value: < 2.2e-16
cat("AIC: ", AIC(fit2))
## AIC: 1.984
simres <- simulateResiduals(fittedModel = fit2)
plot(simres)

fit3 <- lm(NormCounts2 ~ Etoposide*siRNA*genotype, data = dataset)
print(summary(fit3))
##
## Call:
## lm(formula = NormCounts2 ~ Etoposide * siRNA * genotype, data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.23371 -0.03407 0.02551 0.05485 0.14712
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.98976 0.04846 20.426 < 2e-16 ***
## Etoposide -0.57913 0.05223 -11.088 9.04e-14 ***
## siRNAsiPARP1 -0.02865 0.06853 -0.418 0.6781
## genotypeALC1KO -0.02450 0.06853 -0.357 0.7226
## Etoposide:siRNAsiPARP1 -0.14091 0.07386 -1.908 0.0636 .
## Etoposide:genotypeALC1KO -0.14373 0.07386 -1.946 0.0587 .
## siRNAsiPARP1:genotypeALC1KO 0.03248 0.09691 0.335 0.7392
## Etoposide:siRNAsiPARP1:genotypeALC1KO 0.13171 0.10446 1.261 0.2147
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.09248 on 40 degrees of freedom
## Multiple R-squared: 0.9474, Adjusted R-squared: 0.9382
## F-statistic: 103 on 7 and 40 DF, p-value: < 2.2e-16
cat("AIC: ", AIC(fit3))
## AIC: -83.08461
simres <- simulateResiduals(fittedModel = fit3)
plot(simres)

fit4 <- lmer(Counts ~ Etoposide*siRNA*genotype + (1|UID), data = dataset)
print(summary(fit4))
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: Counts ~ Etoposide * siRNA * genotype + (1 | UID)
## Data: dataset
##
## REML criterion at convergence: 588.7
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.05873 -0.41520 -0.03368 0.41184 2.78089
##
## Random effects:
## Groups Name Variance Std.Dev.
## UID (Intercept) 79092 281.2
## Residual 71604 267.6
## Number of obs: 48, groups: UID, 12
##
## Fixed effects:
## Estimate Std. Error df t value
## (Intercept) 2286.15 214.53 15.51 10.657
## Etoposide -1342.07 151.12 32.00 -8.881
## siRNAsiPARP1 -717.95 303.38 15.51 -2.366
## genotypeALC1KO -600.72 303.38 15.51 -1.980
## Etoposide:siRNAsiPARP1 175.48 213.72 32.00 0.821
## Etoposide:genotypeALC1KO 94.03 213.72 32.00 0.440
## siRNAsiPARP1:genotypeALC1KO 1171.04 429.05 15.51 2.729
## Etoposide:siRNAsiPARP1:genotypeALC1KO -514.43 302.25 32.00 -1.702
## Pr(>|t|)
## (Intercept) 1.54e-08 ***
## Etoposide 3.81e-10 ***
## siRNAsiPARP1 0.0313 *
## genotypeALC1KO 0.0657 .
## Etoposide:siRNAsiPARP1 0.4177
## Etoposide:genotypeALC1KO 0.6629
## siRNAsiPARP1:genotypeALC1KO 0.0152 *
## Etoposide:siRNAsiPARP1:genotypeALC1KO 0.0984 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) Etopsd sRNAsPARP1 gALC1K Et:RNAPARP1 E:ALC1 sRNAPARP1:
## Etoposide -0.545
## siRNAsPARP1 -0.707 0.386
## gntypALC1KO -0.707 0.386 0.500
## Et:RNAPARP1 0.386 -0.707 -0.545 -0.273
## Etps:ALC1KO 0.386 -0.707 -0.273 -0.545 0.500
## sRNAPARP1:A 0.500 -0.273 -0.707 -0.707 0.386 0.386
## E:RNAPARP1: -0.273 0.500 0.386 0.386 -0.707 -0.707 -0.545
cat("AIC: ", AIC(fit4))
## AIC: 608.7001
simres <- simulateResiduals(fittedModel = fit4)
plot(simres)

Quadratic formula
fit5 <- lm(Counts ~ Experiment + poly(Etoposide,2)*siRNA*genotype, data = dataset)
print(summary(fit5))
##
## Call:
## lm(formula = Counts ~ Experiment + poly(Etoposide, 2) * siRNA *
## genotype, data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -678.58 -119.82 -13.13 67.68 786.48
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 920.44 96.42 9.546
## Experimentexp2 535.94 96.42 5.558
## Experimentexp3 444.00 96.42 4.605
## poly(Etoposide, 2)1 -4752.70 545.46 -8.713
## poly(Etoposide, 2)2 337.13 545.46 0.618
## siRNAsiPARP1 -582.08 111.34 -5.228
## genotypeALC1KO -527.92 111.34 -4.741
## poly(Etoposide, 2)1:siRNAsiPARP1 621.44 771.39 0.806
## poly(Etoposide, 2)2:siRNAsiPARP1 186.92 771.39 0.242
## poly(Etoposide, 2)1:genotypeALC1KO 333.00 771.39 0.432
## poly(Etoposide, 2)2:genotypeALC1KO 167.42 771.39 0.217
## siRNAsiPARP1:genotypeALC1KO 772.75 157.46 4.908
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO -1821.77 1090.91 -1.670
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO -136.10 1090.91 -0.125
## Pr(>|t|)
## (Intercept) 3.78e-11 ***
## Experimentexp2 3.23e-06 ***
## Experimentexp3 5.56e-05 ***
## poly(Etoposide, 2)1 3.51e-10 ***
## poly(Etoposide, 2)2 0.541
## siRNAsiPARP1 8.69e-06 ***
## genotypeALC1KO 3.71e-05 ***
## poly(Etoposide, 2)1:siRNAsiPARP1 0.426
## poly(Etoposide, 2)2:siRNAsiPARP1 0.810
## poly(Etoposide, 2)1:genotypeALC1KO 0.669
## poly(Etoposide, 2)2:genotypeALC1KO 0.829
## siRNAsiPARP1:genotypeALC1KO 2.26e-05 ***
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO 0.104
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO 0.901
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 272.7 on 34 degrees of freedom
## Multiple R-squared: 0.9173, Adjusted R-squared: 0.8857
## F-statistic: 29.01 on 13 and 34 DF, p-value: 1.325e-14
cat("AIC: ", AIC(fit5))
## AIC: 688.0792
simres <- simulateResiduals(fittedModel = fit5)
plot(simres)

fit6 <- lm(NormCounts ~ poly(Etoposide,2)*siRNA*genotype, data = dataset)
print(summary(fit6))
##
## Call:
## lm(formula = NormCounts ~ poly(Etoposide, 2) * siRNA * genotype,
## data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.49539 -0.09131 0.01085 0.13695 0.27277
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 1.000e+00 5.989e-02 16.697
## poly(Etoposide, 2)1 -3.788e+00 4.149e-01 -9.130
## poly(Etoposide, 2)2 1.515e-01 4.149e-01 0.365
## siRNAsiPARP1 -1.894e-17 8.470e-02 0.000
## genotypeALC1KO -3.408e-16 8.470e-02 0.000
## poly(Etoposide, 2)1:siRNAsiPARP1 -2.529e+00 5.868e-01 -4.310
## poly(Etoposide, 2)2:siRNAsiPARP1 6.843e-01 5.868e-01 1.166
## poly(Etoposide, 2)1:genotypeALC1KO -2.523e+00 5.868e-01 -4.300
## poly(Etoposide, 2)2:genotypeALC1KO 6.269e-01 5.868e-01 1.068
## siRNAsiPARP1:genotypeALC1KO 4.199e-16 1.198e-01 0.000
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO 2.396e+00 8.299e-01 2.888
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO -7.370e-01 8.299e-01 -0.888
## Pr(>|t|)
## (Intercept) < 2e-16 ***
## poly(Etoposide, 2)1 6.67e-11 ***
## poly(Etoposide, 2)2 0.717151
## siRNAsiPARP1 1.000000
## genotypeALC1KO 1.000000
## poly(Etoposide, 2)1:siRNAsiPARP1 0.000121 ***
## poly(Etoposide, 2)2:siRNAsiPARP1 0.251248
## poly(Etoposide, 2)1:genotypeALC1KO 0.000125 ***
## poly(Etoposide, 2)2:genotypeALC1KO 0.292513
## siRNAsiPARP1:genotypeALC1KO 1.000000
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO 0.006526 **
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO 0.380373
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2075 on 36 degrees of freedom
## Multiple R-squared: 0.9569, Adjusted R-squared: 0.9437
## F-statistic: 72.59 on 11 and 36 DF, p-value: < 2.2e-16
cat("AIC: ", AIC(fit6))
## AIC: -2.576078
simres <- simulateResiduals(fittedModel = fit6)
plot(simres)

fit7 <- lm(NormCounts2 ~ poly(Etoposide,2)*siRNA*genotype, data = dataset)
print(summary(fit7))
##
## Call:
## lm(formula = NormCounts2 ~ poly(Etoposide, 2) * siRNA * genotype,
## data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.199934 -0.038681 0.004367 0.057228 0.109769
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 0.54138 0.02480 21.827
## poly(Etoposide, 2)1 -2.05090 0.17184 -11.935
## poly(Etoposide, 2)2 0.08202 0.17184 0.477
## siRNAsiPARP1 -0.13774 0.03508 -3.927
## genotypeALC1KO -0.13578 0.03508 -3.871
## poly(Etoposide, 2)1:siRNAsiPARP1 -0.49900 0.24302 -2.053
## poly(Etoposide, 2)2:siRNAsiPARP1 0.25533 0.24302 1.051
## poly(Etoposide, 2)1:genotypeALC1KO -0.50901 0.24302 -2.095
## poly(Etoposide, 2)2:genotypeALC1KO 0.23369 0.24302 0.962
## siRNAsiPARP1:genotypeALC1KO 0.13445 0.04961 2.710
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO 0.46642 0.34368 1.357
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO -0.27911 0.34368 -0.812
## Pr(>|t|)
## (Intercept) < 2e-16 ***
## poly(Etoposide, 2)1 4.5e-14 ***
## poly(Etoposide, 2)2 0.636020
## siRNAsiPARP1 0.000373 ***
## genotypeALC1KO 0.000439 ***
## poly(Etoposide, 2)1:siRNAsiPARP1 0.047359 *
## poly(Etoposide, 2)2:siRNAsiPARP1 0.300423
## poly(Etoposide, 2)1:genotypeALC1KO 0.043315 *
## poly(Etoposide, 2)2:genotypeALC1KO 0.342667
## siRNAsiPARP1:genotypeALC1KO 0.010228 *
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO 0.183185
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO 0.422057
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08592 on 36 degrees of freedom
## Multiple R-squared: 0.9592, Adjusted R-squared: 0.9467
## F-statistic: 76.87 on 11 and 36 DF, p-value: < 2.2e-16
cat("AIC: ", AIC(fit7))
## AIC: -87.20724
simres <- simulateResiduals(fittedModel = fit7)
plot(simres)

fit8 <- lmer(Counts ~ poly(Etoposide,2)*siRNA*genotype + (1|UID), data = dataset)
print(summary(fit8))
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: Counts ~ poly(Etoposide, 2) * siRNA * genotype + (1 | UID)
## Data: dataset
##
## REML criterion at convergence: 517.6
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.28471 -0.36996 -0.04778 0.38440 2.51161
##
## Random effects:
## Groups Name Variance Std.Dev.
## UID (Intercept) 78658 280.5
## Residual 73340 270.8
## Number of obs: 48, groups: UID, 12
##
## Fixed effects:
## Estimate Std. Error df
## (Intercept) 1247.1 179.8 8.0
## poly(Etoposide, 2)1 -4752.7 541.6 28.0
## poly(Etoposide, 2)2 337.1 541.6 28.0
## siRNAsiPARP1 -582.1 254.3 8.0
## genotypeALC1KO -527.9 254.3 8.0
## poly(Etoposide, 2)1:siRNAsiPARP1 621.4 766.0 28.0
## poly(Etoposide, 2)2:siRNAsiPARP1 186.9 766.0 28.0
## poly(Etoposide, 2)1:genotypeALC1KO 333.0 766.0 28.0
## poly(Etoposide, 2)2:genotypeALC1KO 167.4 766.0 28.0
## siRNAsiPARP1:genotypeALC1KO 772.8 359.6 8.0
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO -1821.8 1083.3 28.0
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO -136.1 1083.3 28.0
## t value Pr(>|t|)
## (Intercept) 6.936 0.00012 ***
## poly(Etoposide, 2)1 -8.775 1.59e-09 ***
## poly(Etoposide, 2)2 0.622 0.53868
## siRNAsiPARP1 -2.289 0.05134 .
## genotypeALC1KO -2.076 0.07155 .
## poly(Etoposide, 2)1:siRNAsiPARP1 0.811 0.42403
## poly(Etoposide, 2)2:siRNAsiPARP1 0.244 0.80899
## poly(Etoposide, 2)1:genotypeALC1KO 0.435 0.66708
## poly(Etoposide, 2)2:genotypeALC1KO 0.219 0.82857
## siRNAsiPARP1:genotypeALC1KO 2.149 0.06389 .
## poly(Etoposide, 2)1:siRNAsiPARP1:genotypeALC1KO -1.682 0.10374
## poly(Etoposide, 2)2:siRNAsiPARP1:genotypeALC1KO -0.126 0.90091
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) pl(E,2)1 pl(E,2)2 sRNAsPARP1 gALC1K pl(E,2)1:RNAPARP1
## ply(Etp,2)1 0.000
## ply(Etp,2)2 0.000 0.000
## siRNAsPARP1 -0.707 0.000 0.000
## gntypALC1KO -0.707 0.000 0.000 0.500
## pl(E,2)1:RNAPARP1 0.000 -0.707 0.000 0.000 0.000
## pl(E,2)2:RNAPARP1 0.000 0.000 -0.707 0.000 0.000 0.000
## p(E,2)1:ALC 0.000 -0.707 0.000 0.000 0.000 0.500
## p(E,2)2:ALC 0.000 0.000 -0.707 0.000 0.000 0.000
## sRNAPARP1:A 0.500 0.000 0.000 -0.707 -0.707 0.000
## p(E,2)1:RNAPARP1: 0.000 0.500 0.000 0.000 0.000 -0.707
## p(E,2)2:RNAPARP1: 0.000 0.000 0.500 0.000 0.000 0.000
## pl(E,2)2:RNAPARP1 p(E,2)1:A p(E,2)2:A sRNAPARP1:
## ply(Etp,2)1
## ply(Etp,2)2
## siRNAsPARP1
## gntypALC1KO
## pl(E,2)1:RNAPARP1
## pl(E,2)2:RNAPARP1
## p(E,2)1:ALC 0.000
## p(E,2)2:ALC 0.500 0.000
## sRNAPARP1:A 0.000 0.000 0.000
## p(E,2)1:RNAPARP1: 0.000 -0.707 0.000 0.000
## p(E,2)2:RNAPARP1: -0.707 0.000 -0.707 0.000
## p(E,2)1:RNAPARP1:
## ply(Etp,2)1
## ply(Etp,2)2
## siRNAsPARP1
## gntypALC1KO
## pl(E,2)1:RNAPARP1
## pl(E,2)2:RNAPARP1
## p(E,2)1:ALC
## p(E,2)2:ALC
## sRNAPARP1:A
## p(E,2)1:RNAPARP1:
## p(E,2)2:RNAPARP1: 0.000
cat("AIC: ", AIC(fit8))
## AIC: 545.6423
simres <- simulateResiduals(fittedModel = fit8)
plot(simres)

Cubic formula
fit9 <- lm(Counts ~ Experiment + poly(Etoposide,3)*siRNA*genotype, data = dataset)
print(summary(fit9))
##
## Call:
## lm(formula = Counts ~ Experiment + poly(Etoposide, 3) * siRNA *
## genotype, data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -680.69 -115.51 -13.82 72.61 784.38
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 920.44 102.55 8.975
## Experimentexp2 535.94 102.55 5.226
## Experimentexp3 444.00 102.55 4.330
## poly(Etoposide, 3)1 -4752.70 580.12 -8.193
## poly(Etoposide, 3)2 337.13 580.12 0.581
## poly(Etoposide, 3)3 -61.44 580.12 -0.106
## siRNAsiPARP1 -582.08 118.42 -4.916
## genotypeALC1KO -527.92 118.42 -4.458
## poly(Etoposide, 3)1:siRNAsiPARP1 621.44 820.41 0.757
## poly(Etoposide, 3)2:siRNAsiPARP1 186.92 820.41 0.228
## poly(Etoposide, 3)3:siRNAsiPARP1 -31.34 820.41 -0.038
## poly(Etoposide, 3)1:genotypeALC1KO 333.00 820.41 0.406
## poly(Etoposide, 3)2:genotypeALC1KO 167.42 820.41 0.204
## poly(Etoposide, 3)3:genotypeALC1KO 91.05 820.41 0.111
## siRNAsiPARP1:genotypeALC1KO 772.75 167.47 4.614
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO -1821.77 1160.24 -1.570
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO -136.10 1160.24 -0.117
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO -77.66 1160.24 -0.067
## Pr(>|t|)
## (Intercept) 5.33e-10 ***
## Experimentexp2 1.23e-05 ***
## Experimentexp3 0.000153 ***
## poly(Etoposide, 3)1 3.81e-09 ***
## poly(Etoposide, 3)2 0.565484
## poly(Etoposide, 3)3 0.916364
## siRNAsiPARP1 2.96e-05 ***
## genotypeALC1KO 0.000107 ***
## poly(Etoposide, 3)1:siRNAsiPARP1 0.454676
## poly(Etoposide, 3)2:siRNAsiPARP1 0.821318
## poly(Etoposide, 3)3:siRNAsiPARP1 0.969780
## poly(Etoposide, 3)1:genotypeALC1KO 0.687699
## poly(Etoposide, 3)2:genotypeALC1KO 0.839682
## poly(Etoposide, 3)3:genotypeALC1KO 0.912372
## siRNAsiPARP1:genotypeALC1KO 6.91e-05 ***
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO 0.126864
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO 0.907400
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO 0.947078
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 290.1 on 30 degrees of freedom
## Multiple R-squared: 0.9175, Adjusted R-squared: 0.8707
## F-statistic: 19.62 on 17 and 30 DF, p-value: 8.983e-12
cat("AIC: ", AIC(fit9))
## AIC: 695.9863
simres <- simulateResiduals(fittedModel = fit9)
plot(simres)

fit10 <- lm(NormCounts ~ poly(Etoposide,3)*siRNA*genotype, data = dataset)
print(summary(fit10))
##
## Call:
## lm(formula = NormCounts ~ poly(Etoposide, 3) * siRNA * genotype,
## data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.44050 -0.08879 -0.00180 0.14256 0.31334
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 1.000e+00 6.257e-02 15.981
## poly(Etoposide, 3)1 -3.788e+00 4.335e-01 -8.738
## poly(Etoposide, 3)2 1.515e-01 4.335e-01 0.349
## poly(Etoposide, 3)3 -3.761e-02 4.335e-01 -0.087
## siRNAsiPARP1 -2.985e-16 8.849e-02 0.000
## genotypeALC1KO -4.724e-16 8.849e-02 0.000
## poly(Etoposide, 3)1:siRNAsiPARP1 -2.529e+00 6.131e-01 -4.125
## poly(Etoposide, 3)2:siRNAsiPARP1 6.843e-01 6.131e-01 1.116
## poly(Etoposide, 3)3:siRNAsiPARP1 1.324e-01 6.131e-01 0.216
## poly(Etoposide, 3)1:genotypeALC1KO -2.523e+00 6.131e-01 -4.115
## poly(Etoposide, 3)2:genotypeALC1KO 6.269e-01 6.131e-01 1.022
## poly(Etoposide, 3)3:genotypeALC1KO 2.795e-01 6.131e-01 0.456
## siRNAsiPARP1:genotypeALC1KO 3.127e-16 1.251e-01 0.000
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO 2.396e+00 8.671e-01 2.764
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO -7.370e-01 8.671e-01 -0.850
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO -3.503e-02 8.671e-01 -0.040
## Pr(>|t|)
## (Intercept) < 2e-16 ***
## poly(Etoposide, 3)1 5.51e-10 ***
## poly(Etoposide, 3)2 0.729023
## poly(Etoposide, 3)3 0.931406
## siRNAsiPARP1 1.000000
## genotypeALC1KO 1.000000
## poly(Etoposide, 3)1:siRNAsiPARP1 0.000246 ***
## poly(Etoposide, 3)2:siRNAsiPARP1 0.272697
## poly(Etoposide, 3)3:siRNAsiPARP1 0.830420
## poly(Etoposide, 3)1:genotypeALC1KO 0.000253 ***
## poly(Etoposide, 3)2:genotypeALC1KO 0.314232
## poly(Etoposide, 3)3:genotypeALC1KO 0.651548
## siRNAsiPARP1:genotypeALC1KO 1.000000
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO 0.009393 **
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO 0.401620
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO 0.968022
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2168 on 32 degrees of freedom
## Multiple R-squared: 0.9581, Adjusted R-squared: 0.9385
## F-statistic: 48.83 on 15 and 32 DF, p-value: < 2.2e-16
cat("AIC: ", AIC(fit10))
## AIC: 3.977467
simres <- simulateResiduals(fittedModel = fit10)
plot(simres)

fit11 <- lm(NormCounts2 ~ poly(Etoposide,3)*siRNA*genotype, data = dataset)
print(summary(fit11))
##
## Call:
## lm(formula = NormCounts2 ~ poly(Etoposide, 3) * siRNA * genotype,
## data = dataset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.178665 -0.037267 -0.000769 0.058767 0.126061
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 0.54138 0.02593 20.877
## poly(Etoposide, 3)1 -2.05090 0.17966 -11.415
## poly(Etoposide, 3)2 0.08202 0.17966 0.457
## poly(Etoposide, 3)3 -0.02036 0.17966 -0.113
## siRNAsiPARP1 -0.13774 0.03667 -3.756
## genotypeALC1KO -0.13578 0.03667 -3.702
## poly(Etoposide, 3)1:siRNAsiPARP1 -0.49900 0.25408 -1.964
## poly(Etoposide, 3)2:siRNAsiPARP1 0.25533 0.25408 1.005
## poly(Etoposide, 3)3:siRNAsiPARP1 0.05861 0.25408 0.231
## poly(Etoposide, 3)1:genotypeALC1KO -0.50901 0.25408 -2.003
## poly(Etoposide, 3)2:genotypeALC1KO 0.23369 0.25408 0.920
## poly(Etoposide, 3)3:genotypeALC1KO 0.11847 0.25408 0.466
## siRNAsiPARP1:genotypeALC1KO 0.13445 0.05186 2.592
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO 0.46642 0.35932 1.298
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO -0.27911 0.35932 -0.777
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO -0.02025 0.35932 -0.056
## Pr(>|t|)
## (Intercept) < 2e-16 ***
## poly(Etoposide, 3)1 8.08e-13 ***
## poly(Etoposide, 3)2 0.651087
## poly(Etoposide, 3)3 0.910474
## siRNAsiPARP1 0.000692 ***
## genotypeALC1KO 0.000802 ***
## poly(Etoposide, 3)1:siRNAsiPARP1 0.058274 .
## poly(Etoposide, 3)2:siRNAsiPARP1 0.322482
## poly(Etoposide, 3)3:siRNAsiPARP1 0.819023
## poly(Etoposide, 3)1:genotypeALC1KO 0.053672 .
## poly(Etoposide, 3)2:genotypeALC1KO 0.364596
## poly(Etoposide, 3)3:genotypeALC1KO 0.644170
## siRNAsiPARP1:genotypeALC1KO 0.014246 *
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO 0.203548
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO 0.443001
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO 0.955418
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08983 on 32 degrees of freedom
## Multiple R-squared: 0.9603, Adjusted R-squared: 0.9417
## F-statistic: 51.63 on 15 and 32 DF, p-value: < 2.2e-16
cat("AIC: ", AIC(fit11))
## AIC: -80.5874
simres <- simulateResiduals(fittedModel = fit11)
plot(simres)

fit12 <- lmer(Counts ~ poly(Etoposide,3)*siRNA*genotype + (1|UID), data = dataset)
print(summary(fit12))
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: Counts ~ poly(Etoposide, 3) * siRNA * genotype + (1 | UID)
## Data: dataset
##
## REML criterion at convergence: 459.6
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.17552 -0.31765 -0.02158 0.33740 2.36211
##
## Random effects:
## Groups Name Variance Std.Dev.
## UID (Intercept) 75654 275.1
## Residual 85359 292.2
## Number of obs: 48, groups: UID, 12
##
## Fixed effects:
## Estimate Std. Error df
## (Intercept) 1247.08 179.81 8.00
## poly(Etoposide, 3)1 -4752.70 584.33 24.00
## poly(Etoposide, 3)2 337.13 584.33 24.00
## poly(Etoposide, 3)3 -61.44 584.33 24.00
## siRNAsiPARP1 -582.08 254.29 8.00
## genotypeALC1KO -527.92 254.29 8.00
## poly(Etoposide, 3)1:siRNAsiPARP1 621.44 826.36 24.00
## poly(Etoposide, 3)2:siRNAsiPARP1 186.92 826.36 24.00
## poly(Etoposide, 3)3:siRNAsiPARP1 -31.34 826.36 24.00
## poly(Etoposide, 3)1:genotypeALC1KO 333.00 826.36 24.00
## poly(Etoposide, 3)2:genotypeALC1KO 167.42 826.36 24.00
## poly(Etoposide, 3)3:genotypeALC1KO 91.05 826.36 24.00
## siRNAsiPARP1:genotypeALC1KO 772.75 359.62 8.00
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO -1821.77 1168.65 24.00
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO -136.10 1168.65 24.00
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO -77.66 1168.65 24.00
## t value Pr(>|t|)
## (Intercept) 6.936 0.00012 ***
## poly(Etoposide, 3)1 -8.134 2.35e-08 ***
## poly(Etoposide, 3)2 0.577 0.56934
## poly(Etoposide, 3)3 -0.105 0.91714
## siRNAsiPARP1 -2.289 0.05134 .
## genotypeALC1KO -2.076 0.07155 .
## poly(Etoposide, 3)1:siRNAsiPARP1 0.752 0.45935
## poly(Etoposide, 3)2:siRNAsiPARP1 0.226 0.82296
## poly(Etoposide, 3)3:siRNAsiPARP1 -0.038 0.97006
## poly(Etoposide, 3)1:genotypeALC1KO 0.403 0.69053
## poly(Etoposide, 3)2:genotypeALC1KO 0.203 0.84116
## poly(Etoposide, 3)3:genotypeALC1KO 0.110 0.91318
## siRNAsiPARP1:genotypeALC1KO 2.149 0.06389 .
## poly(Etoposide, 3)1:siRNAsiPARP1:genotypeALC1KO -1.559 0.13212
## poly(Etoposide, 3)2:siRNAsiPARP1:genotypeALC1KO -0.116 0.90826
## poly(Etoposide, 3)3:siRNAsiPARP1:genotypeALC1KO -0.066 0.94757
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cat("AIC: ", AIC(fit12))
## AIC: 495.5766
simres <- simulateResiduals(fittedModel = fit12)
plot(simres)

Final Result
fit <- fit7
output <- coef(summary(fit))
output <- output[grep("Etoposide", rownames(output)),]
rownames(output) <- gsub("poly\\(|, [1-3]\\)","", rownames(output) )
rownames(output) <- gsub("genotype", paste0(" ",levels(dataset$genotype)[1], " vs. "), rownames(output))
rownames(output)[!(grepl("vs", rownames(output)))] <- paste(rownames(output)[!(grepl("vs", rownames(output)))], levels(dataset$genotype)[1], sep = " in " )
rownames(output) <- gsub("siRNA", paste0(" ",levels(dataset$siRNA)[1], " vs. "), rownames(output))
rownames(output)[!(grepl("vs.*vs| in ", rownames(output)))] <- paste(rownames(output)[!(grepl("vs.*vs| in ", rownames(output)))], levels(dataset$siRNA)[1], sep = " in " )
rownames(output)[!(grepl("vs", rownames(output)))] <- paste(rownames(output)[!(grepl("vs", rownames(output)))], levels(dataset$siRNA)[1], sep = " " )
# suggested result table
kable(output, row.names = T)
| Etoposide1 in WT siCtrl |
-2.0508960 |
0.1718398 |
-11.9349267 |
0.0000000 |
| Etoposide2 in WT siCtrl |
0.0820225 |
0.1718398 |
0.4773193 |
0.6360200 |
| Etoposide1: siCtrl vs. siPARP1 in WT |
-0.4990002 |
0.2430182 |
-2.0533444 |
0.0473592 |
| Etoposide2: siCtrl vs. siPARP1 in WT |
0.2553265 |
0.2430182 |
1.0506474 |
0.3004225 |
| Etoposide1: WT vs. ALC1KO in siCtrl |
-0.5090070 |
0.2430182 |
-2.0945218 |
0.0433145 |
| Etoposide2: WT vs. ALC1KO in siCtrl |
0.2336853 |
0.2430182 |
0.9615957 |
0.3426674 |
| Etoposide1: siCtrl vs. siPARP1: WT vs. ALC1KO |
0.4664218 |
0.3436797 |
1.3571409 |
0.1831849 |
| Etoposide2: siCtrl vs. siPARP1: WT vs. ALC1KO |
-0.2791111 |
0.3436797 |
-0.8121256 |
0.4220574 |
write.table(output, file = "FigureS3_eto_Stats_Ref_WT.txt", quote = F, sep = "\t", row.names = T, col.names = NA)
# re-fit with ALC1KO reference
dataset$genotype <- relevel(dataset$genotype, ref = "ALC1KO")
fit <- lm(NormCounts2 ~ poly(Etoposide,2)*siRNA*genotype, data = dataset)
output <- coef(summary(fit))
output <- output[grep("Etoposide", rownames(output)),]
rownames(output) <- gsub("poly\\(|, [1-3]\\)","", rownames(output) )
rownames(output) <- gsub("genotype", paste0(" ",levels(dataset$genotype)[1], " vs. "), rownames(output))
rownames(output)[!(grepl("vs", rownames(output)))] <- paste(rownames(output)[!(grepl("vs", rownames(output)))], levels(dataset$genotype)[1], sep = " in " )
rownames(output) <- gsub("siRNA", paste0(" ",levels(dataset$siRNA)[1], " vs. "), rownames(output))
rownames(output)[!(grepl("vs.*vs| in ", rownames(output)))] <- paste(rownames(output)[!(grepl("vs.*vs| in ", rownames(output)))], levels(dataset$siRNA)[1], sep = " in " )
rownames(output)[!(grepl("vs", rownames(output)))] <- paste(rownames(output)[!(grepl("vs", rownames(output)))], levels(dataset$siRNA)[1], sep = " " )
# suggested result table
kable(output, row.names = T)
| Etoposide1 in ALC1KO siCtrl |
-2.5599030 |
0.1718398 |
-14.8970279 |
0.0000000 |
| Etoposide2 in ALC1KO siCtrl |
0.3157078 |
0.1718398 |
1.8372209 |
0.0744433 |
| Etoposide1: siCtrl vs. siPARP1 in ALC1KO |
-0.0325784 |
0.2430182 |
-0.1340573 |
0.8941039 |
| Etoposide2: siCtrl vs. siPARP1 in ALC1KO |
-0.0237846 |
0.2430182 |
-0.0978717 |
0.9225771 |
| Etoposide1: ALC1KO vs. WT in siCtrl |
0.5090070 |
0.2430182 |
2.0945218 |
0.0433145 |
| Etoposide2: ALC1KO vs. WT in siCtrl |
-0.2336853 |
0.2430182 |
-0.9615957 |
0.3426674 |
| Etoposide1: siCtrl vs. siPARP1: ALC1KO vs. WT |
-0.4664218 |
0.3436797 |
-1.3571409 |
0.1831849 |
| Etoposide2: siCtrl vs. siPARP1: ALC1KO vs. WT |
0.2791111 |
0.3436797 |
0.8121256 |
0.4220574 |
write.table(output, file = "FigureS3_eto_Stats_Ref_ALC1.txt", quote = F, sep = "\t", row.names = T, col.names = NA)